const express = require('express');
let Router = express.Router();

let mysql = require('./sql')

module.exports = Router;
let app = express();
app.all("*", function (req, res, next) {
  res.header('Access-Control-Allow-Origin', "*")
  next()
})
// http://localhost:3000/user/login
Router.get('/login', (req, res) => {
  let {
    username,
    password
  } = req.query;
  console.log(username, password)
  // 当请求这个登录接口的时候 得拿传递过来的用户名和密码去数据库中匹配是否存在
  // 如果在就说明登录成功 如果不成在就说明用户名或者密码错误

  // select * from `user` WHERE `username`='abc' AND `password`='123123';
  // 去user表中判断是否有 username=abc 且 password=123123 的数据
  mysql.sql({
    sql: `select * from user WHERE username='${username}' AND password='${password}';`,
    success(results) {
      // 当不存在这个用户名和密码的数据 results = []
      if (results.length == 0) {
        res.send({
          code: 400,
          msg: `用户名或者密码错误${username}`
        })
        return
      }
      res.send({
        code: 200,
        data: results[0],
        msg: '登录成功'
      })
    },
    error(err) {
      // console.log(err);
      res.send(err)
    }
  })
})


Router.use(express.json(), express.urlencoded())
// http://localhost:3000/user/reg
// Router.post('/reg', (req, res) => {
//     let { username, password } = req.body
//     res.send({
//         code: 200,
//         msg: '我是注册接口'
//     })
// })
Router.post('/user/reg', (req, res) => {
  let {
    username,
    password
  } = req.body;
  if (!username || !password) {
    res.send({
      code: 400,
      msg: `用户名或密码不能为空`
    })
    return
  }
  console.log(username);
  // 当请求这个登录接口的时候 得拿传递过来的用户名和密码去数据库中匹配是否存在
  // 如果在就说明登录成功 如果不成在就说明用户名或者密码错误
  // 去user表中判断是否有 username=abc 且 password=123123 的数据
  mysql.sql({
    sql: `insert into user (username, password)
        values ('${username}', '${password}')`,
    success(results) {
      console.log(results, ' results')
      // 当不存在这个用户名和密码的数据 results = []
      if (results.length == 0) {
        res.send({
          code: 400,
          msg: `用户名或者密码错误${username}`
        })
        return
      }
      res.send({
        code: 200,
        data: results[0],
        msg: '登录成功'
      })
    },
    error(err) {
      // console.log(err);
      res.send(err)
    }
  })
})

Router.get('/user/check', (req, res) => {
  let {
    username,
    password
  } = req.query;
  // 当请求这个登录接口的时候 得拿传递过来的用户名和密码去数据库中匹配是否存在
  // 如果在就说明登录成功 如果不成在就说明用户名或者密码错误

  // select * from `user` WHERE `username`='abc' AND `password`='123123';
  // 去user表中判断是否有 username=abc 且 password=123123 的数据
  mysql.sql({
    sql: `select * from user WHERE username='${username}';`,
    success(results) {
      // 当不存在这个用户名和密码的数据 results = []
      if (results.length !== 0) {
        res.send({
          code: 400,
          msg: `用户名已存在`
        })
        return
      }
      res.send({
        code: 200,
        data: '校验通过',
        msg: '校验通过'
      })
    },
    error(err) {
      // console.log(err);
      res.send(err)
    }
  })
})
app.get('/view', (req, res) => {
  const isMobile = /Android|webOS|iPhone|iPod|BlackBerry/i.test(req.headers['user-agent'])
  if (isMobile) {
    res.send('趣学旅程移动端')
  } else {
    res.send('趣学旅程PC端')
  }
});
app.get('/userList', (req, res) => {
  // let row =  mysql.sql(`select * from user`);
  mysql.sql({
    sql: `select * from user`,
    success(row) {
      // 在服务端的时候根据数据渲染生成结构
      let html = `<!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>
        </head>
        <body>
            <ul>
               ${row.map(item => {
                    return `<li>
                        <p>
                            <img src="${item.avatar}" alt="">
                        </p>
                        <p>用户名：${item.username}</p>
                        <p>密码：${item.password}</p>
                    </li>`
                }).join('')}
            </ul>
        </body>
    </html>`;
      res.send(html)
    },
    error(err) {
      // console.log(err);
      res.send(err)
    }
  })

})

app.use('/api', Router);

app.listen(3000, () => {
  console.log('running port is 3000');
})